package com.copm.ifm.base.api.pojo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体类通用父类
 * <p>
 * 一般情况下的表都应该有这6个参数。
 * <p>
 * 但是如果是不会被修改的则不需要 deleted, updateBy, updateDate；甚至description都不需要;
 * 有些不需要做逻辑删除的则不需要加deleted字段。
 * <p>
 * 具体情况具体分析，在确保满足需求的情况下字段越少越好。
 *
 * @author zzf
 * @date 2020/7/10 14:10
 */
@Getter
@Setter
public abstract class BasePO implements Serializable {

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("是否删除 [0:未删除 1:已删除]")
    private Integer deleted;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty("创建人")
    private Long createBy;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty("创建时间")
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty("修改人")
    private Long updateBy;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty("修改时间")
    private Date updateTime;

}
